This application claims the priority of Korean Patent Application No. 2002-70646, filed on Nov. 14, 2002, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.
1. Field of the Invention
The present invention relates to a search method of a fixed codebook, and more particularly, to a focused search method and apparatus thereof, for being applied to an audio codec for Voice over Internet Protocol (VoIP).
2. Description of the Related Art
Various methods for converting speech to a digital signal suitable for transmission have been used. Particularly, in a mobile communication environment, it is required to accommodate more users in a limited channel and provide better speech quality while transmitting speech data at a lower bit rate. A function which converts speech into a digital signal and compresses the digital signal is performed by a vocoder. The vocoder as a device for coding speech includes a waveform codec, a source codec, a hybrid codec, etc. A CELP codec is one type of hybrid codec using a compression algorithm used when encoding speech at a low bit rate. The CELP codec creates a speech signal with good quality at a bit rate lower than 16 kbps.
The CELP codec constitutes a codebook using different white gaussian noises. The CELP codec transmits, instead of a sound signal, an index corresponding to optimal white gaussian noise in which an error between an input sound signal and synthesized sound is minimized, thereby obtaining a compression effect. Also, the channel capacity of a gateway according to the Voice over Internet Protocol (VoIP) is greatly dependent on the complexity of the audio codec. The complexity of an audio codec using the CELP coding algorithm is decided according to methods for fixed codebook search.
Table 1 shows a fixed codebook structure of a G.729 sound codec.
TABLE 1TrackPulseCodePulse location0i0S0: ±1M0:0 5 10 15 20 25 30 351i1s1: ±1m0:1 6 11 16 21 26 31 362i2s2: ±1m0:2 7 12 17 22 27 32 373i3s3: ±1m0:3 8 13 18 23 28 33 384 9 14 19 24 29 34 39
As shown in Table 1, pulses i0, i1, i2, and i3 are located in tracks 0, 1, 2, and 3, respectively. Each pulse has a value of +1 or −1. Also, pulse location indexes 0, 5, 10, . . . , 35 are in track 0, pulse location indexes 1, 6, 11, . . . , 36 are in track 1, pulse location indexes 2, 7, 12, . . . , 37 are in track 2, and pulse location indexes 3, 8, 13, . . . , 39 are in track 3. In this case, searching for a fixed codebook refers to searching for an optimal pulse location for each track of the tracks 0, 1, 2, and 3.
A fixed codebook vector of the G.729 standards has only 4 pulse locations among 40 pulse locations (equal to the sample number of subframes), where each value of the pulses is limited into −1 or +1. Each of the four pulse locations can be selected from each track of the four tracks shown in Table 1. The track 3 has 16 pulse locations, differently from other tracks. This is an inherent characteristic of the G.729 standards. In this case, searching for the fixed codebook refers to searching for four most optimal pulse locations and codes among the 40 pulse locations.
Among methods for fixed codebook search, a complete search method used in a 6.3 kbps audio codec according to the G.723.1 standards is a method that searches all possible pulse locations. Therefore, a high-quality sound can be obtained using this method. However, such a complete search method requires a large calculation amount, and accordingly, is time consuming.
To solve this problem, a focused search method is used in a 5.3 kbps audio codec according to the G.729 or G.723.1 standard.
FIG. 1 is a flowchart of a conventional focused search method.
The focused search method predetermines a threshold value in consideration of respective pulse locations of tracks 0, 1, and 2 (step S110), creates pulse location combinations which are selected in each track of tracks 0, 1, and 2 (step S120), compares the threshold value with a summed value of correlation vectors for each pulse location combination (step S130), and searches for the pulse locations of the track 3 for only the summed value of correlation vectors for pulse location combinations above the threshold value (step S140). After the pulse locations of track 3 are searched for, it is determined whether all pulse location combinations of tracks 0, 1, and 2 are completely searched for (step S150). If search is not complete, respective pulse locations of tracks 0, 1, and 2 are increased and process feeds back to step S120 that creates pulse location combinations for each track of tracks 0, 1, and 2 (step S160). If the summed value is equal to or smaller than the threshold value, a fixed codebook search for a corresponding subframe is terminated (step S170).
However, such a focused search method has a problem in that a large calculation amount is required and calculation complexity is not uniform since all pulse location combinations of tracks 0, 1, and 2 are compared to a threshold value.
Meanwhile, a fixed codebook high-speed search method used in an audio codec is disclosed in Korean Patent Laid-open Publication No. 2001-0095585, filed on Apr. 11, 2000 by C&S Technology, Inc., published on Nov. 7, 2001. The above Patent terminates fixed codebook search if a combination in which a summed value thereof is below a threshold value is generated when deciding combinations for search of track 3, by arranging pulse locations in a descending order in advance in each track of tracks 0, 1, and 2 according to their correlation values, thereby removing unnecessary calculation.
However, in the above-described method, a problem still exits in that unnecessary search is conducted for the lower several pulse locations for each track having little probability of being selected as an optimal pulse location in each track whose pulse locations arranged in a descending order, when deciding the combinations for search of track 3.